<?php

/**
 * @Project NUKEVIET 3.0
 * @Author VINADES.,JSC (contact@vinades.vn)
 * @Copyright (C) 2010 VINADES.,JSC. All rights reserved
 * @Createdate 31/05/2010, 00:36
 */

if( ! defined( 'NV_MAINFILE' ) ) die( 'Stop!!!' );

if( empty( $global_config['site_lang'] ) or ! preg_match( "/^[a-z]{2}$/", $global_config['site_lang'] ) or ! file_exists( NV_ROOTDIR . "/language/" . $global_config['site_lang'] . "/global.php" ) )
{
	if( ! file_exists( NV_ROOTDIR . "/language/en/global.php" ) ) trigger_error( "Error! Lang file is absent!", 256 );
	$global_config['site_lang'] = "en";
}

if( defined( 'NV_ADMIN' ) and $global_config['lang_multi'] )
{
	$cookie = $nv_Request->get_string( 'data_lang', 'cookie' );
	$site_lang = $nv_Request->get_string( NV_LANG_VARIABLE, 'get,post' );

	if( preg_match( "/^[a-z]{2}$/", $site_lang ) and file_exists( NV_ROOTDIR . "/language/" . $site_lang . "/global.php" ) )
	{
		if( $site_lang != $cookie ) $nv_Request->set_Cookie( 'data_lang', $site_lang, NV_LIVE_COOKIE_TIME );
		
		define( 'NV_LANG_DATA', $site_lang );
	}
	elseif( preg_match( "/^[a-z]{2}$/", $cookie ) and file_exists( NV_ROOTDIR . "/language/" . $cookie . "/global.php" ) )
	{
		define( 'NV_LANG_DATA', $cookie );
	}
	else
	{
		$nv_Request->set_Cookie( 'data_lang', $global_config['site_lang'], NV_LIVE_COOKIE_TIME );
	
		define( 'NV_LANG_DATA', $global_config['site_lang'] );
	}

	$cookie = $nv_Request->get_string( 'int_lang', 'cookie' );
	$langinterface = $nv_Request->get_string( 'langinterface', 'get,post', '' );

	if( preg_match( "/^[a-z]{2}$/", $langinterface ) and file_exists( NV_ROOTDIR . "/language/" . $langinterface . "/global.php" ) )
	{
		if( $langinterface != $cookie ) $nv_Request->set_Cookie( 'int_lang', $langinterface, NV_LIVE_COOKIE_TIME );
	
		define( 'NV_LANG_INTERFACE', $langinterface );
	}
	elseif( preg_match( "/^[a-z]{2}$/", $cookie ) and file_exists( NV_ROOTDIR . "/language/" . $cookie . "/global.php" ) )
	{
		define( 'NV_LANG_INTERFACE', $cookie );
	}
	else
	{
		$nv_Request->set_Cookie( 'int_lang', $global_config['site_lang'], NV_LIVE_COOKIE_TIME );
	
		define( 'NV_LANG_INTERFACE', $global_config['site_lang'] );
	}
	
	unset( $cookie, $site_lang, $langinterface );
}
else
{
	$cookie = $nv_Request->get_string( 'u_lang', 'cookie' );
	$site_lang = $nv_Request->get_string( NV_LANG_VARIABLE, 'get,post' );

	if( ! empty( $site_lang ) and ( in_array( $site_lang, $global_config['allow_sitelangs'] ) ) and file_exists( NV_ROOTDIR . "/language/" . $site_lang . "/global.php" ) )
	{
		if( $site_lang != $cookie ) $nv_Request->set_Cookie( 'u_lang', $site_lang, NV_LIVE_COOKIE_TIME );
	}
	elseif( preg_match( "/^[a-z]{2}$/", $cookie ) and ( in_array( $cookie, $global_config['allow_sitelangs'] ) ) and file_exists( NV_ROOTDIR . "/language/" . $cookie . "/global.php" ) )
	{
		$site_lang = $cookie;
	}
	else
	{
		$site_lang = $global_config['site_lang'];
	
		if( $global_config['lang_geo'] )
		{
			$config_geo = array();
		
			include ( NV_ROOTDIR . "/" . NV_DATADIR . "/config_geo.php" );
		
			if( isset( $config_geo[$client_info['country']] ) )
			{
				$site_lang = $config_geo[$client_info['country']];
			}
		}
		
		$nv_Request->set_Cookie( 'u_lang', $site_lang, NV_LIVE_COOKIE_TIME );
	}

	define( 'NV_LANG_INTERFACE', $site_lang );
	define( 'NV_LANG_DATA', $site_lang );
	unset( $cookie, $site_lang );
}

?>